package com.librelato.negocio.interfaces;

import java.util.List;
import java.util.Map;

import com.librelato.bean.HistoricoBean;
import com.librelato.bean.SolicitacaoBean;
import com.librelato.bean.UsuarioBean;

public interface ISolicitacaoServico<P extends SolicitacaoBean> extends
		IServicoGenerico<P> {

	List<SolicitacaoBean> buscaSolicitacoes(String dataDe, String dataAte,
			String numSolicita, String codProduto, String status,
			String filial, Integer idUser, boolean filtro) throws Exception;

	public List<SolicitacaoBean> buscaSolicitacoes(Map<String, String> param,
			UsuarioBean usuario) throws Exception ;

	void excluir(SolicitacaoBean solicitacao) throws Exception;

	void editar(SolicitacaoBean solicitacao) throws Exception;

	List<P> buscaSolicitacaoComprador(String status, UsuarioBean usuario,
			Map<String, String> parametros) throws Exception;

	void liberaSolicitacao(SolicitacaoBean solicitacao) throws Exception;

	void rejeitaSolicitacao(SolicitacaoBean solicitacao) throws Exception;

	void trocaComprador(SolicitacaoBean solicitacao, String comprador)
			throws Exception;

	void insereHistorico(SolicitacaoBean solicitacao, String descricao)
			throws Exception;

	List<HistoricoBean> buscaHistoricos(SolicitacaoBean solicitacao)
			throws Exception;
	
	public List<P> buscaSolicitacoesCompradorConsulta(
			Map<String, String> param, UsuarioBean usuario) throws Exception;
	
	public SolicitacaoBean buscaDadosPedido(SolicitacaoBean solicitacao)
			throws Exception;
	
	public void bloqueiaSolicitacao(SolicitacaoBean solicitacao) throws Exception;

}
